﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autocentro.Entities;
using Autocentro.Respository;
using Microsoft.Practices.Unity;

namespace Autocentro.BussinesLogic
{
    public class DetalleCompraBL:IDetalleCompraBL
    {
        [Dependency]
        public IDetalleCompraRepository detCompRepository { get; set; }

        [Dependency]
        public ICompraRepository compRepository { get; set; }

        [Dependency]
        public IProductoRepository prodRepository { get; set; }

        public List<DETALLECOMPRA> GetAllFromDetalleCompraByCompraId(int id)
        {
            return detCompRepository.GetAllFromDetalleCompraByCompraId(id);
        }


        public void DeleteDetalleCompra(int idDet, int idCompra)
        {
            var _compra = compRepository.GetFromCompraById(idCompra);

            detCompRepository.DeleteDetalleCompra(idDet, idCompra);

            foreach (var item in _compra.DetalleCompra)
            {
                var cantidad = Convert.ToInt32(item.Cantidad);

                if (item.Item == idDet)
                {
                    var producto = prodRepository.GetFromProductoByID(item.Producto.Id);
                    var actproducto = producto;
                    actproducto.Stock = producto.Stock - item.Cantidad;
                    prodRepository.UpdateProducto(actproducto);
                }
            }
        }


        public DETALLECOMPRA GetFromDetalleCompraByCompraId(int idproducto, int idcompra)
        {
            return detCompRepository.GetFromDetalleCompraByCompraId(idproducto, idcompra);
        }


        public List<DETALLECOMPRA> GetFromDetalleCompraByProductoDescAndCompraId(string descripcion, int id)
        {
            return detCompRepository.GetFromDetalleCompraByProductoDescAndCompraId(descripcion, id);
        }
    }
}
